module LazyQuery

import MacroTools
import NamedTuples

import ChainRecursive: detected, @chain
export @chain

import LazyContext
import LazyContext: @evaluate, @new_environment, WithContext, get_expression,
    get_module, get_environment, evaluate!, evaluate, my_macroexpand, Environment,
    immutable_merge
export @evaluate, @new_environment

import Base: ImmutableDict

import DataFrames
import DataFrames: DataFrame, GroupedDataFrame
export DataFrame

import Query
import Query.query
export query

import LazyCall: unweave

include("utilities.jl")
include("basic_verbs.jl")
include("query_backend.jl")
include("table_backend.jl")

end
